package org.dromara.xxmj.domain.vo;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 我已购买的课程
 *
 * @author Vincent
 */
@Data
@ExcelIgnoreUnannotated
@Schema(description = "课程视图对象")
public class CourseMyOrderVO {


    /**
     * 课程ID
     */
    @Schema(description = "课程ID")
    private Long id;

    /**
     * 课程标题
     */
    @Schema(description = "课程标题")
    @ExcelProperty(value = "课程标题")
    private String title;

    /**
     * 封面图片
     */
    @Schema(description = "封面图片")
    private String coverImg;

    /**
     * 课程简介
     */
    @Schema(description = "课程简介")
    private String intro;

    /**
     * 价格
     */
    @Schema(description = "价格")
    @ExcelProperty(value = "价格")
    private BigDecimal price;

    /**
     * 原价
     */
    @Schema(description = "原价")
    @ExcelProperty(value = "原价")
    private BigDecimal originalPrice;

    /**
     * 分类ID
     */
    @Schema(description = "分类ID")
    private Long categoryId;

    /**
     * 分类名称
     */
    @Schema(description = "分类名称")
    @ExcelProperty(value = "分类名称")
    private String categoryName;

    /**
     * 讲师姓名
     */
    @Schema(description = "讲师姓名")
    @ExcelProperty(value = "讲师姓名")
    private String teacherName;

    /**
     * 难度级别（1初级 2中级 3高级）
     */
    @Schema(description = "难度级别")
    private String level;

    /**
     * 难度级别文本
     */
    @Schema(description = "难度级别文本")
    @ExcelProperty(value = "难度级别")
    private String levelName;

    /**
     * 学习人数
     */
    @Schema(description = "学习人数")
    @ExcelProperty(value = "学习人数")
    private Integer studyCount;

    /**
     * 状态（0上架 1下架）
     */
    @Schema(description = "状态")
    private String status;

    /**
     * 排序号
     */
    @Schema(description = "排序号")
    private Integer sort;

    /**
     * 创建时间
     */
    @Schema(description = "创建时间")
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    @Schema(description = "更新时间")
    private LocalDateTime updateTime;

    /**
     * 备注
     */
    @Schema(description = "备注")
    private String remark;

    /**
     * 题目数量
     */
    @Schema(description = "题目数量")
    private Integer questionCount;

    /**
     * 已完成的题目数量
     */
    @Schema(description = "已完成的题目数量")
    private Integer completedQuestions;

    /**
     * 完成进度 （已经答题数量/全部题目数量）
     */
    @Schema(description = "完成进度")
    private Double progress;

}
